<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>连接器测试V0.0.2</title>

<script type="text/javascript" src="js/comet4j.js"></script>




<script type="text/javascript">
        	var xhr;
        	function init(){
        		xhr = new JS.XMLHttpRequest();
        		xhr.on({
    				readyStateChange : function(readyState,status,xhr){
    					var str = '[readyStateChange] :'+new Date().toLocaleString()+'----<br//>'+
    					'readyState：'+readyState+'<br//>'+
						'status：'+status+'<br//>'+
						'responseText：'+xhr.responseText+'<br/>'+
						'--------<br/>';
    					log('XMLHttpRequest_log',str);
    				},
    				timeout : function(conn){
    					var str = '[timeout] :'+new Date().toLocaleString()+'----<br/>'+
    					'readyState：'+conn.readyState+'<br/>'+
						'status：'+conn.status+'<br/>'+
						'responseText：'+conn.responseText+'<br/>'+
    					'--------<br/>';
    					log('XMLHttpRequest_log',str);
    				},
    				abort : function(conn){
    					var str = '[abort] :'+new Date().toLocaleString()+'----<br/>'+
    					'readyState：'+conn.readyState+'<br/>'+
						'status：'+conn.status+'<br/>'+
						'responseText：'+conn.responseText+'<br/>'+
    					'--------<br/>';
    					log('XMLHttpRequest_log',str);
    				},
    				error : function(conn){
    					var str = '[error] :'+new Date().toLocaleString()+'----<br/>'+
    					'readyState：'+conn.readyState+'<br/>'+
						'status：'+conn.status+'<br/>'+
						'responseText：'+conn.responseText+'<br/>'+
    					'--------<br/>';
    					log('XMLHttpRequest_log',str);
    				},
    				load : function(conn){
    					var str = '[load] :'+new Date().toLocaleString()+'----<br/>'+
    					'readyState：'+conn.readyState+'<br/>'+
						'status：'+conn.status+'<br/>'+
						'responseText：'+conn.responseText+'<br/>'+
    					'--------<br/>';
    					log('XMLHttpRequest_log',str);
    				},
    				progress : function(conn){
    					var str = '[progress] :'+new Date().toLocaleString()+'----<br/>'+
    					'readyState：'+conn.readyState+'<br/>'+
						'status：'+conn.status+'<br/>'+
						'responseText：'+conn.responseText+'<br/>'+
    					'--------<br/>';
    					log('XMLHttpRequest_log',str);
    				}
    			});
    			conn();
            }
			
			function log(id,str){
				var t = document.getElementById(id).innerHTML;
				document.getElementById(id).innerHTML += str;
				document.getElementById(id).scrollTop = document.getElementById(id).scrollHeight;
			}
			
			
			function conn(){
				var url = 'conn?cmd=conn';
				xhr.open('GET', url, true);
				xhr.send(null);
			}
			function stop(){
				xhr.abort();
			}	
			function cl(){
				document.getElementById('XMLHttpRequest_log').innerHTML = '';		

			}		
            //JS.EventEngine.start(serverUrl + '?action=conn');
        </script>
</head>
<body onload="init()">

	<table style="width: 100%">
		<tr>
			<td style="width: 50%;">连接器测试</td>
			<td>&nbsp;</td>
		</tr>
		<tr>
			<td style="" colspan="2">&nbsp; <input name="Reset2"
				type="button" onclick="conn();" value="连接" /> <input name="Reset3"
				type="button" onclick="stop();" value="断开" /> <input name="Reset4"
				type="button" onclick="cl();" value="清空" /> 
				</td>
		</tr>
		<tr>
			<td colspan="2">XMLHttpRequest onReadyStateChange Event ：<br/>
				<div id="XMLHttpRequest_log"
					style="width: 100%; height: 200px; overflow: auto; border: 1px navy solid;"></div>
			</td>
		</tr>
		<tr>
			<td colspan="2">Connector Events ：</td>
		</tr>
		<tr>
			<td colspan="2">测试指导：<br/> [1].测试无信息接收连接的状态是否稳定。<br/>
				[2].测试有信息接收连接的状态是否稳定。<br/> [3].正在连接时断开连接，尝试是否可以再次连接。<br/>
				[4].正在连接时服务器突然停止，连接是否会自动停止。<br/> 测试结果：<br/>
				IE8：8.0.7600.16385——完全通过<br/> IE7：7.0.5730.13——未通过<br/>
				IE6：6.0.290——[4]项未通过<br/> Chrome：7.0.517.44——完全通过<br/>
				FireFox：3.6.13——[4]项未通过<br/> FireFox：3.6.15——[4]项未通过<br/>
				Safari：5.0.2(7533.18.15)——完全通过<br/> Safari：5.0.2(7533.19.4)——完全通过<br/>
				iPhone:4.0.1 iPhone 3GS Apple-iPhone2C1/801.306——[4]项未通过<br/> 问题：<br/>
				当服务器关掉以后FireFox和IE6无法正常触发stop事件。原因是：readyState：4,status：0和readyState：1,status：0<br/>
				IE7xmlhttprequest readystate状态一旦到达4就不再触发onReadyStateChange事件 可改进：<br/>
				使用Beat使真正断开的连接可以在客户端停止，解决FireFox和IE6的问题。<br/>
				不同的工作模式下可以有不同的超时时间，使效率更高。<br/> 前后台关于长连接与长轮询的处理最好独立分开，需重构。<br/></td>
		</tr>
	</table>

</body>
</html>
